import pandas as pd
import re

# 读取 Excel 文件并获取所有表格
file_path = r'C:\Users\Administrator\PycharmProjects\pythonProject\Item\Spider_analyse\sitemaps.xlsx'

# 读取 Excel 文件中的所有表格
xls = pd.ExcelFile(file_path)
sheet_names = xls.sheet_names  # 获取所有表的名称


# 定义一个函数来提取 URL 中的日期并去除
def remove_date_from_url(URL):
    try:
        # 使用正则表达式去除日期部分（如 2024-12-13T00:00:00+08:00）
        pattern = r"/(2024|2025)-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.*$"
        clean_url = re.sub(pattern, "", URL)  # 去除日期及其后的内容
        return clean_url
    except Exception as e:
        return None


# 处理每个表格
for sheet in sheet_names:
    # 读取每个表格
    df = pd.read_excel(file_path, sheet_name=sheet)

    # 假设包含 URL 的列名为 'URL'
    if 'URL' in df.columns:
        # 对 URL 列进行处理，直接覆盖
        df['URL'] = df['URL'].apply(remove_date_from_url)

        # 保存处理后的结果回原 Excel 文件（覆盖原表）
        with pd.ExcelWriter(file_path, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
            df.to_excel(writer, sheet_name=sheet, index=False)
        print(f"处理完成，{sheet} 的结果已保存到原表格")
    else:
        print(f"{sheet} 表格中没有 'URL' 列，跳过处理")
